
#include <iostream>
#include <cassert>
#include <utility>
using namespace std;

void check(int&)
{
    cout << "lvalue\n";
}

void check(int&&)
{
    cout << "rvalue\n";
}

template<typename T> 
void print(T&& v)
{
    check(forward<T>(v));
}

int main()
{
    int x{10};
    print(x);
    print(move(x));
    return 0;
}